// 封装中间件函数插件 打开页面 自动聚焦
const directiveObj = {
  install (Vue) {
    Vue.directive('fofo', {
      // el代表指令所在的标签
      inserted (el) {
        // 指令所在van-search组件
        // 组件根标签都是div, input在内部
        // 以上都是原生标签对象
        // const theInput = el.querySelector('input') || el
        // theInput.focus()
        // 如果el直接放在了输入框上
        if (el.nodeName === 'TEXTAREA' || el.nodeName === 'INPUT') {
          el.focus()
        } else { // el本身不是输入框 v-fofo放在了输入框的父级上
          const theInput = el.querySelector('input')
          const theTextarea = el.querySelector('textarea')
          // 判断的目的：不一定能获取到，获取到了再执行，这样就不报错
          if (theInput) theInput.focus()
          if (theTextarea) theTextarea.focus()
        }
      },
      // 更新的时候再触发一次
      update (el) {
        if (el.nodeName === 'TEXTAREA' || el.nodeName === 'INPUT') {
          el.focus()
        } else { // el本身不是输入框 v-fofo放在了输入框的父级上
          const theInput = el.querySelector('input')
          const theTextarea = el.querySelector('textarea')
          // 判断的目的：不一定能获取到，获取到了再执行，这样就不报错
          if (theInput) theInput.focus()
          if (theTextarea) theTextarea.focus()
        }
      }
    })
  }
}

export default directiveObj // 导出
